1. Technical Field
The present invention relates to efficient interoperation of computing technologies, and more particularly to systems and methods for storage level reordering for virtual and dynamic resource allocation for memory-intensive applications.
2. Description of the Related Art
Emerging Internet-scale service applications operate on large amounts of data that are maintained in memory to achieve high throughput and offer low response time guarantees to users. Key catalyzers to this trend have been the significant decrease of memory cost, increase of memory capacity in machines and development and adoption of in-memory distributed storage technologies such as memcached, XAP and ObjectGrid™ As a result, In-Memory Data Grids (IMDGs) have become the cost- and performance-effective solution for such vast-scale and distributed data provisioning. Thus, many Web-scale businesses, such as Facebook™ and Twitter™, rely on some form of such memory-backed data grids to operate while scaling to a large number of users.
Facebook™, for example, stores all its indexing information on a memcached to speed up the access to large objects from backend storage servers in a timely manner. Other non-traditional data oriented applications, e.g., fraud detection, rely on IMDG to collect and analyze operational data in an on-line fashion.
Virtualization technologies are becoming more important in large-scale data center and cloud infrastructures. In addition to the simplified management and provisioning benefits, these virtualized environments enable dynamic optimizations to the cloud operation by dynamically reallocating distributed resources to the running virtualized entities. By repositioning and reprovisioning virtual machines (VMs), virtualized environments provide agile runtime response to the dynamically-varying requirements of data centers. This alleviates the inefficiencies of the existing statically-allocated information technology (IT) infrastructure model due to the severe over-provisioning and inefficient underutilization of computing resources.
While both of these trends have proven to be effective exclusively in their domains and continue to gain increasing momentum, they exhibit a striking conflict in their characteristics that can hamper their effectiveness under joint operation in a cloud environment. More specifically, on one hand, IMDG solutions benefit from exploiting large amounts of random access memory (RAM) to manage data and therefore, they tend to heavily exercise memory for effective operation.
On the other hand, dynamic VM allocation in virtualization performs best by transferring as little live state as possible across physical entities during VM reallocation. It is well known that there is a strong positive correlation between the amount of live state a VM has and the migration overheads it can experience. The main contributors to the live state are the amount of ‘active memory’ or the working set size of the VM, the rate at which the pages are dirtied in memory and the overall footprint of the VM. Therefore, their dynamic response efficiency is inversely affected while allocating VMs with heavy memory usage. This has at least two detrimental effects: (1) higher performance overhead perceived by the applications using IMDG nodes as the response times increase under dynamic allocation conditions; and (2) energy overheads due to extensive copying and recopying of live state, as well as higher resource and link usage.